Git a GitHub není to samé!
GitHub.com je jeden z nejpoužívanějších serverů pro správu vzdálených repozitářů je. Používá jej 70 % všech vývojářů. Od roku 2018 patří Microsoftu. Kromě hostování repozitářů poskytuje uživatelům mnoho dalších služeb spojených s vývojem projektů: podporu pro dokumentaci a tvorbu Wiki, diskuse uživatelů, trackování problémů, historii verzování projektů, statistiky, propojení se sociálními sítěmi. Od prosince 2024 i bezplatný přístup k GitHub Copilotu.
GitHub není jediný. Další podobné servery jsou například GitLab.com, BitBucket.org, SourceForge.net apod.
Můžete si vytvořit i svůj vlastní server s úložištěm repozitářů GitLab server.
Možností, jak pracovat s GitHubem je víc:
Postupně si je ukážeme.
Otevřené projekty (public) lze z GitHubu (bez registrace a přihlášení):
git clone k vytvoření lokální kopie projektu včetně všech commitů.
💾 Přesuň se do adresáře, ve kterém bude adresář s klonovaným projektem. Samotný adresář nevytvářej, příkaz git clone si jej vytvoří sám.
cd
git clone https://github.com/w3schools-test/hello-world
cd hello-world
git status
git log --oneline
V domovském adresáři vznikne adresář hello-world s projektem.
Pro možnost vytvoření a správy vlastních repozitářů je třeba si na serveru vytvořit bezplatný účet.
⚠️ Důležité: Použij stejnou e-mailovou adresu jako máš v konfiguraci gitu.
$ git config user.email
Pro plnohodnotnou spolupráci mezi lokálním git repozitářem a GitHub serverem je navíc potřeba si vygenerovat šifrovací klíče na každém počítači, kde chceš GitHub používat.. Návod je na webu GitHubu.
Přejdi na stránku repozitáře, který chceš forknout (zkopírovat):
https://github.com/edumach/html-uvod
Klikni na tlačítko Fork (vpravo nahoře). GitHub vytvoří kopii repozitáře ve tvém vlastním účtu GitHubu.
Hotovo! Teď máš repozitář html-uvod ve svém GitHubu.
Svůj GitHub repozitář můžeš buď upravovat přímo na GitHubu nebo jej synchronizovat do svého počítače (a upravovat ho tam):
$ git clone https://github.com/JMENO/html-uvod.git
Pak už jen běžné Git příkazy:
$ git add -A
$ git commit -m "Moje úpravy"
$ git push origin main
💡 Pro hlavní větev gitu existuje název master (nebo "nově" main). Podobně pro vzdálenou větev existuje název origin.
Kontrola, kam je připojený lokální repozitář:
$ git remote -v
Vyžaduje SSH klíče
Obecný postup:
seminarka)Na GitHubu:
seminarka).V lokálním git repozitáři:
$ git remote add origin git@github.com:JMENO/seminarka.git
$ git add -A
$ git commit -m "Přidání repozitáře"
$ git push -u origin main
⚠️ Pamatuj, že hlavní větev v lokálním repozitáři se jmenuje master nebo nově main, zatímco stejná hlavní větev na GitHubu se jmenuje origin.
Git je distribuovaný verzovací systém. To znamená, že se v něm dá mimo práce v lokálním repozitáři pracovat také ve vzdálených repozitářích. To umožňuje nesmírně pružné možnosti spolupráce mezi mnoha týmy a vývojáři.
$ git remote -v
$ git remote remove origin
Pokud máme ke vzdálenému repozitáři příslušná práva, můžeme synchronizovat práci mezi ním a lokálním repozitářem oběma směry.
Typicky se pracuje po jednotlivých větvích (pokud jich máš víc):
$ git fetch <vzdálený> <větev> .. updatuje stav dané větve v lokálním repozitáři podle vzdáleného, neovlivňuje stav WD. Typicky git fetch origin main.
$ git pull <vzdálený> <větev> .. chová se velmi podobně jako git fetch, ale updatuje zároveň WD, tedy prakticky provede merge, což může vést ke konfliktům.
$ git push <vzdálený> <větev> .. updatuje danou větev ve vzdáleném repozitáři podle stavu v lokálním (na vzdálený repozitář musí být právo zápisu).
Git a jeho příkazový aparát otevírá široké možnosti spolupráce mnoha lidí v jednom projektu.
⚠️ Důležité: Aby nedocházelo ke zmatkům, je potřeba si zejména u větších projektů předem domluvit přesná pravidla, jak bude spolupráce probíhat: